package com.wl;

/**
 * @author wangLin
 * @version 1.0
 * @projectName singletonPattern20210423
 * @className LoadBalancer
 * @date 2021-04-23 周五
 * @time 8:48
 * @description TODO
 */

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

/**
 * 负载均衡器
 */
public class LoadBalancer {
    /**
     * 存储唯一实例
     */
    private static LoadBalancer loadBalancer = null;
    /**
     * 服务器集合
     */
    private List<String> serviceList = null;

    /**
     * 私有构造函数
     */
    private LoadBalancer() {
        serviceList = new ArrayList();
    }

    /**
     * 共有静态成员方法，返回唯一实例对象
     *
     * @return
     */
    synchronized public static LoadBalancer getLoadBalancer() {
        if (loadBalancer == null) {
            loadBalancer = new LoadBalancer();
        }
        return loadBalancer;
    }

    /**
     * 增加服务器
     */
    public void addService(String service) {
        serviceList.add(service);
    }

    /**
     * 删除服务器
     */
    public void removeService(String service) {
        serviceList.remove(service);
    }

    /**
     * 使用Random类随机获取服务器
     */
    public String getService() {
        Random random = new Random();
        int i = random.nextInt(serviceList.size());
        return serviceList.get(i);
    }


}
